// 导入axios
import axios from 'axios'

// 引入大仓库和用户相关的小仓库
import pinia from '@/store/index'
import { useUserInfoStore } from '../store/login'
// 进度条
import NProgress from 'nprogress'
//加载进度条样式
import 'nprogress/nprogress.css'
// 关闭圆圈加载
NProgress.configure({ showSpinner: false })
// 创建初始化
const request = axios.create({
  baseURL: '/api',
  // 响应时间
  timeout: 80000,
})
// 请求拦截器
request.interceptors.request.use(
  (config: any) => {
      // 获取用户小仓库的token并携带
      const userStore = useUserInfoStore(pinia);
      if (userStore.token) {
          // 请求头添加token
          config.headers.token = userStore.token;
      }
      NProgress.start()
      return config;
  }
);
// 响应拦截器
request.interceptors.response.use(
  // 请求成功的加载
  (result) => {

    
    // 进度条关闭
    NProgress.done()
    //响应返回的数据
    return result.data
  },
  // 请求失败的回调函数
  (error) => {
    // 进度条关闭
    NProgress.done()
    // 打印报错
    console.log(error)
    // 返回一个pormise对象，该对象被reject
    return Promise.reject(new Error('faile'))
  },
)

export default request
